package com.cuijian.demo.config;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.cuijian.demo.util.JsonUtil;
import com.alibaba.fastjson2.JSONObject;

import javax.servlet.http.HttpServletRequest;

public class JsonRequestInterceptor implements Interceptor {

    @Override
    public void intercept(Invocation inv) {
        // 如果是JSON请求，预处理数据
        if (JsonUtil.isJsonRequest(inv.getController())) {
            try {
                JSONObject jsonData = JsonUtil.getJsonData(inv.getController());
                // 将JSON数据设置到request attribute中，方便后续使用
                inv.getController().getRequest().setAttribute("jsonData", jsonData);
            } catch (Exception e) {
                inv.getController().renderJson(com.cuijian.demo.common.JsonResult.error("JSON数据格式错误: " + e.getMessage()).toMap());
                return;
            }
        }

        inv.invoke();
    }
}